package com.westos.calcv3;

import com.westos.calcv2.IOperator;
import com.westos.calcv2.OperatorFactory;

import java.util.Scanner;

/**
 * 计算器代码
 * 实现四则运算，输入两个运算数字（此处要求是整数）以及运算符，输出结果
 */
public class Calc {

    public static void  main(String[] args){
        //一开始就加载
        SpringUtil.getInstance();
        System.out.println("请输入第一个操作数：");
        Scanner sc=new Scanner(System.in);
        Integer opone=null;
        Integer optwo=null;
        String op="";
        if(sc.hasNext()){
            String strone=sc.next();
            opone=Integer.valueOf(strone);
        }
        System.out.println("请输入操作符：");
        if(sc.hasNext()){
            op=sc.next();
        }
        System.out.println("请输入第二个操作数：");
        if(sc.hasNext()){
            optwo=Integer.valueOf(sc.next());
        }
        Integer result=null;
        // 使用工厂模式进行解耦
        //IOperator operator= OperatorFactory.create2(op);
        //使用spring代替工厂
        IOperator operator=SpringUtil.getInstance().getContext().getBean(op,IOperator.class);
        if(operator!=null){
            result=operator.operator(opone,optwo);
            System.out.println(opone+op+optwo+"="+result);
        }else{
            System.out.println("不支持的操作运算符");
        }


    }
}